//导入bcrypt
const bcrypt = require('bcrypt');

// 导入用户集合构造函数
const { User } = require('../../model/user')



module.exports = async (req, res) => {


    //   接受请求参数
    const { email, password } = req.body;
 
    if (email.trim().length == 0 || password.trim().length == 0) {
       return res.status(400).render('admin/error', { msg: '邮件的地址或者密码错误' });
    }
    // 查询到的user是对象类型，存储着用户信息
    let user = await User.findOne({ email });
    if (user) {
       // 查询到用户
       // 信息比对
       // ture 比对成功
       // false 比对失败
       let isValid = await bcrypt.compare(password, user.password)
       if (isValid) {
          // 用户名存储在请求对象中
          req.session.username = user.username;
         //  将用户角色也存在对象当中
         req.session.role = user.role;
          // res.send('登陆成功')
          // 重定向到用户列表
          req.app.locals.userInfo = user;
         //  对用户角色进行判断
         if(user.role == 'admin') {
            res.redirect('/admin/user')
         }else {
            res.redirect('/home/')
         }
          
       } else {
          //  没有查询到用户
          res.status(400).render('admin/error', { msg: '邮件的地址或者密码错误' });
       }
    } else {
       //  没有查询到用户
       res.status(400).render('admin/error', { msg: '邮件的地址或者密码错误' });
    }
 }

